La información que se presenta a través de gráficos dinámicos y datos estadísticos, permite conocer la evolución del COVID-19 desde una perspectiva histórica y actual de los contagios a nivel Bolivia y Departamento, contrastado con el número de Casos Nuevos, Casos Acumulados, por Tipo de Casos (Confirmados, Recuperados, Decesos y Activos). La pulsación en los botones y leyendas de los gráficos dinámicos permite generar información de acuerdo al requerimiento del usuario.
Departamentos
Tablas de Frecuencia
Tarija
Los datos utilizados son de <boliviasegura.gob.bo>.
LS0tDQp0aXRsZTogIkNvdmlkLTE5IGVuIEJvbGl2aWEiDQphdXRob3I6IEJsYWRpbWlyIE1vcmFsZXMgVG9ycmV6DQpkYXRlOiAiYHIgZm9ybWF0KFN5cy50aW1lKCksICdBY3R1YWxpemFkbyBhICVkICVCLCAlWScpYCINCm91dHB1dDogDQogIGh0bWxfbm90ZWJvb2s6DQogICAgbnVtYmVyX3NlY3Rpb25zOiB0cnVlDQogICAgdGhlbWU6IGZsYXRseQ0KICAgIHRvYzogdHJ1ZQ0KICAgIHRvY19mbG9hdDogdHJ1ZQ0KICAgIGZpZ19yZXRpbmE6IDINCiAgICBkZl9wcmludDogcGFnZWQNCi0tLQ0KPHN0eWxlPg0KYm9keSB7DQp0ZXh0LWFsaWduOiBqdXN0aWZ5fQ0KPC9zdHlsZT4NCg0KTGEgaW5mb3JtYWNpw7NuIHF1ZSBzZSBwcmVzZW50YSBhIHRyYXbDqXMgZGUgZ3LDoWZpY29zIGRpbsOhbWljb3MgeSBkYXRvcyBlc3RhZMOtc3RpY29zLCBwZXJtaXRlIGNvbm9jZXIgbGEgZXZvbHVjacOzbiBkZWwgQ09WSUQtMTkgZGVzZGUgdW5hIHBlcnNwZWN0aXZhIGhpc3TDs3JpY2EgeSBhY3R1YWwgZGUgbG9zIGNvbnRhZ2lvcyBhIG5pdmVsIEJvbGl2aWEgeSBEZXBhcnRhbWVudG8sIGNvbnRyYXN0YWRvIGNvbiBlbCBuw7ptZXJvIGRlIENhc29zIE51ZXZvcywgIENhc29zIEFjdW11bGFkb3MsIHBvciBUaXBvIGRlIENhc29zIChDb25maXJtYWRvcywgUmVjdXBlcmFkb3MsIERlY2Vzb3MgeSBBY3Rpdm9zKS4NCkxhIHB1bHNhY2nDs24gZW4gbG9zIGJvdG9uZXMgeSBsZXllbmRhcyBkZSBsb3MgZ3LDoWZpY29zIGRpbsOhbWljb3MgcGVybWl0ZSBnZW5lcmFyIGluZm9ybWFjacOzbiBkZSBhY3VlcmRvIGFsIHJlcXVlcmltaWVudG8gZGVsIHVzdWFyaW8uIA0KDQoNCmBgYHtyIGJhc2VfZGF0b3MsIGVjaG89RkFMU0V9DQojcHE9Yygia25pdHIiLCJyZWFkeGwiLCJkcGx5ciIsInB1cnJyIiwiZ2x1ZSIsInBsb3RseSIpDQojaW5zdGFsbC5wYWNrYWdlcyhwcSkNCmxpYnJhcnkoa25pdHIpDQpsaWJyYXJ5KHJlYWR4bCkNCmxpYnJhcnkocHVycnIpI2FjY3VtdWxhdGUNCmxpYnJhcnkoZ2x1ZSkjYW50ZXMgZGUgcGxvdGx5DQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShwbG90bHkpDQoNCnJtKGxpc3Q9bHMoKSkNCmV0aXF1ZXRhc19hYnI9YygiYm4iLCJjYiIsImNoIiwibHAiLCJvciIsInBuIiwicHQiLCJzYyIsInRqIikNCmJkPWxpc3QoKQ0KZm9yKGkgaW4gMTo5KXsNCiBiZF9kZXA9ZGF0YS5mcmFtZShyZWFkX3hsc3goIkM6XFxVc2Vyc1xcQmxhZGltaXJcXERvY3VtZW50c1xcUHJveWVjdG9zXFxDT1ZJRC0xOSBCb2xpdmlhXFxDT1ZJRC0xOS1Cb2xpdmlhXFxCRFxcQkRfZHB0by54bHN4IixzaGVldCA9IGV0aXF1ZXRhc19hYnJbaV0gKSkgJT4lIA0KICAgbXV0YXRlKEFjdGl2b3M9Q29uZmlybWFkb3MtRGVjZXNvcy1SZWN1cGVyYWRvcywNCiAgICAgICAgIFRvdGFsX0NvbmZpcm1hZG9zPSBDb25maXJtYWRvcyAlPiUgIGFjY3VtdWxhdGUoYCtgKSwNCiAgICAgICAgIFRvdGFsX0RlY2Vzb3M9IERlY2Vzb3MgJT4lICBhY2N1bXVsYXRlKGArYCksDQogICAgICAgICBUb3RhbF9SZWN1cGVyYWRvcz0gUmVjdXBlcmFkb3MgJT4lICBhY2N1bXVsYXRlKGArYCksDQogICAgICAgICBUb3RhbF9BY3Rpdm9zPSBBY3Rpdm9zICU+JSAgYWNjdW11bGF0ZShgK2ApKQ0KIGJkW2ldPWxpc3QoYmRfZGVwKX0NCg0KYmRfZGVwPWJkDQpCb2xpdmlhPWRhdGEuZnJhbWUoYXMuRGF0ZShiZFtbOV1dJEZlY2hhKSkgJT4lIA0KICBtdXRhdGUoZGVwPSJCb2xpdmlhIixDb25maXJtYWRvcz0wLERlY2Vzb3M9MCxSZWN1cGVyYWRvcz0wLEFjdGl2b3M9MCwNCiAgICAgICAgIFRvdGFsX0NvbmZpcm1hZG9zPTAsVG90YWxfRGVjZXNvcz0wLFRvdGFsX1JlY3VwZXJhZG9zPTAsVG90YWxfQWN0aXZvcz0wKSAlPiUgDQogIHNlbGVjdChGZWNoYT0iYXMuRGF0ZS5iZC4uOS4uLkZlY2hhLiIsZGVwOlRvdGFsX0FjdGl2b3MpDQoNCmZvciAoaSBpbiAxOjkpIHsNCiAgQm9saXZpYSRDb25maXJtYWRvcz1Cb2xpdmlhJENvbmZpcm1hZG9zK2JkW1tpXV0kQ29uZmlybWFkb3MNCiAgQm9saXZpYSREZWNlc29zPUJvbGl2aWEkRGVjZXNvcytiZFtbaV1dJERlY2Vzb3MNCiAgQm9saXZpYSRSZWN1cGVyYWRvcz1Cb2xpdmlhJFJlY3VwZXJhZG9zK2JkW1tpXV0kUmVjdXBlcmFkb3MNCiAgQm9saXZpYSRBY3Rpdm9zPUJvbGl2aWEkQWN0aXZvcytiZFtbaV1dJEFjdGl2b3MNCiAgQm9saXZpYSRUb3RhbF9Db25maXJtYWRvcz1Cb2xpdmlhJFRvdGFsX0NvbmZpcm1hZG9zK2JkW1tpXV0kVG90YWxfQ29uZmlybWFkb3MNCiAgQm9saXZpYSRUb3RhbF9EZWNlc29zPUJvbGl2aWEkVG90YWxfRGVjZXNvcytiZFtbaV1dJFRvdGFsX0RlY2Vzb3MNCiAgQm9saXZpYSRUb3RhbF9SZWN1cGVyYWRvcz1Cb2xpdmlhJFRvdGFsX1JlY3VwZXJhZG9zK2JkW1tpXV0kVG90YWxfUmVjdXBlcmFkb3MNCiAgQm9saXZpYSRUb3RhbF9BY3Rpdm9zPUJvbGl2aWEkVG90YWxfQWN0aXZvcytiZFtbaV1dJFRvdGFsX0FjdGl2b3MNCn0NCg0KYmRbMTBdPWxpc3QoQm9saXZpYSkNCg0KZXRpcXVldGFfZGVwPWMoIkJlbmkiLCJDb2NoYWJhbWJhIiwiQ2h1cXVpc2FjYSIsIkxhIFBheiIsIk9ydXJvIiwiUGFuZG8iLCJQb3Rvc8OtIiwiU2FudGEgQ3J1eiIsIlRhcmlqYSIsIkJvbGl2aWEiKQ0KbmFtZXMoYmQpPWV0aXF1ZXRhX2RlcA0KYGBgDQoNCiMgQm9saXZpYSB7LnRhYnNldH0NCg0KIyMgR3LDoWZpY28gZGUgdGlwbyBkZSBjYXNvcw0KDQpgYGB7ciBmaWcud2lkdGg9OCxmaWcuaGVpZ2h0PTUsZWNobz1GQUxTRX0NCnBsb3RfbHkodHlwZSA9ICJzY2F0dGVyIixtb2RlPSdsaW5lcycpICU+JSANCiAgYWRkX3RyYWNlKHg9YmRbW2V0aXF1ZXRhX2RlcFsxMF1dXSRGZWNoYSx5PWJkW1tldGlxdWV0YV9kZXBbMTBdXV0kQ29uZmlybWFkb3MsDQogICAgICAgICAgICBuYW1lPSJDb25maXJtYWRvcyIsdmlzaWJsZT1ULGxpbmU9bGlzdChjb2xvcj0iI0ZBOTc1QSIpKSAlPiUgDQogIGFkZF90cmFjZSh4PWJkW1tldGlxdWV0YV9kZXBbMTBdXV0kRmVjaGEseT1iZFtbZXRpcXVldGFfZGVwWzEwXV1dJERlY2Vzb3MsDQogICAgICAgICAgICBuYW1lPSJEZWNlc29zIix2aXNpYmxlPVQsbGluZT1saXN0KGNvbG9yPSIjNDk0NDUxIikpICU+JSANCiAgYWRkX3RyYWNlKHg9YmRbW2V0aXF1ZXRhX2RlcFsxMF1dXSRGZWNoYSx5PWJkW1tldGlxdWV0YV9kZXBbMTBdXV0kUmVjdXBlcmFkb3MgLA0KICAgICAgICAgICAgbmFtZT0iUmVjdXBlcmFkb3MiLHZpc2libGU9VCxsaW5lPWxpc3QoY29sb3I9IiM0RUYxNTEiKSkgJT4lIA0KICANCiAgYWRkX3RyYWNlKHg9YmRbW2V0aXF1ZXRhX2RlcFsxMF1dXSRGZWNoYSx5PWJkW1tldGlxdWV0YV9kZXBbMTBdXV0kVG90YWxfQ29uZmlybWFkb3MsDQogICAgICAgICAgICBuYW1lPSJUb3RhbCBDb25maXJtYWRvcyIsdmlzaWJsZT1GLGxpbmU9bGlzdChjb2xvcj0iI0ZBOTc1QSIpKSAlPiUgDQogIGFkZF90cmFjZSh4PWJkW1tldGlxdWV0YV9kZXBbMTBdXV0kRmVjaGEseT1iZFtbZXRpcXVldGFfZGVwWzEwXV1dJFRvdGFsX0RlY2Vzb3MsDQogICAgICAgICAgICBuYW1lPSJUb3RhbCBEZWNlc29zIix2aXNpYmxlPUYsbGluZT1saXN0KGNvbG9yPSIjNDk0NDUxIikpICU+JSANCiAgYWRkX3RyYWNlKHg9YmRbW2V0aXF1ZXRhX2RlcFsxMF1dXSRGZWNoYSx5PWJkW1tldGlxdWV0YV9kZXBbMTBdXV0kVG90YWxfUmVjdXBlcmFkb3MsDQogICAgICAgICAgICBuYW1lPSJUb3RhbCBSZWN1cGVyYWRvcyIsdmlzaWJsZT1GLGxpbmU9bGlzdChjb2xvcj0iIzRFRjE1MSIpKSAlPiUgDQogIGFkZF90cmFjZSh4PWJkW1tldGlxdWV0YV9kZXBbMTBdXV0kRmVjaGEseT1iZFtbZXRpcXVldGFfZGVwWzEwXV1dJFRvdGFsX0FjdGl2b3MsDQogICAgICAgICAgICBuYW1lPSJUb3RhbCBBY3Rpdm9zIix2aXNpYmxlPUYsbGluZT1saXN0KGNvbG9yPSIjRjk0MzMxIikpICU+JSANCiAgbGF5b3V0KHRpdGxlPSJCT0xJVklBOiBUSVBPIERFIENBU09TIiwgDQogICAgICAgICB1cGRhdGVtZW51cz1saXN0KGxpc3QodHlwZT0nYnV0dG9ucycsZGlyZWN0aW9uID0gInJpZ2h0Iix4YW5jaG9yID0gJ2xlZnQnLA0KICBwYWQgPSBsaXN0KCdyJz0gMCwgJ3QnPSA2MCkseCA9IDAseSA9IDEuMywNCiAgYnV0dG9ucz1saXN0KGxpc3QobGFiZWw9Ik51ZXZvcyBDYXNvcyIsbWV0aG9zPSJyZWxheW91dCIsYXJncz1saXN0KCJ2aXNpYmxlIixjKEYsVCxULFQsRixGLEYsRikpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdChsYWJlbD0iQ2Fzb3MgQWN1bXVsYWRvcyIsbWV0aG9zPSJ1cGRhdGUiLGFyZ3M9bGlzdCgidmlzaWJsZSIsYyhGLEYsRixGLFQsVCxULFQpKSkpDQogICAgICAgICAgKSkNCikNCg0KYGBgDQoNCiMjIFRhYmxhIGRlIGZyZWN1ZW5jaWFzDQoNCmBgYHtyIHRhYmxhX2JvbGl2aWEsZWNobz1GQUxTRX0NCnRhYmxhX2JvbGl2aWE9YmRbWyJCb2xpdmlhIl1dICU+JSANCiAgZHBseXI6OnN1bW1hcmlzZShDb25maXJtYWRvcz1zdW0oQ29uZmlybWFkb3MpLA0KICAgICAgICAgICAgICAgICAgIERlY2Vzb3M9c3VtKERlY2Vzb3MpLA0KICAgICAgICAgICAgICAgICAgIFJlY3VwZXJhZG9zPXN1bShSZWN1cGVyYWRvcyksDQogICAgICAgICAgICAgICAgICAgQWN0aXZvcz1zdW0oQWN0aXZvcykpDQp0YWJsYV9ib2xpdmlhPWxpc3QodGFibGFfYm9saXZpYSkNCg0KdGFibGFfYm9saXZpYT1saXN0KFRpcG89YygiQ29uZmlybWFkb3MiLCJEZWNlc29zIiwiUmVjdXBlcmFkb3MiLCJBY3Rpdm9zIiksDQogICAgICAgICAgICAgICAgICAgTnJvX2Nhc29zPWModGFibGFfYm9saXZpYVtbMV1dJENvbmZpcm1hZG9zLHRhYmxhX2JvbGl2aWFbWzFdXSREZWNlc29zLHRhYmxhX2JvbGl2aWFbWzFdXSRSZWN1cGVyYWRvcyx0YWJsYV9ib2xpdmlhW1sxXV0kQWN0aXZvcyksDQogICAgICAgICAgICAgICAgICAgUG9yY2VudGFqZT1jKDEwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmQodGFibGFfYm9saXZpYVtbMV1dJERlY2Vzb3MvdGFibGFfYm9saXZpYVtbMV1dJENvbmZpcm1hZG9zKjEwMCwxKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmQodGFibGFfYm9saXZpYVtbMV1dJFJlY3VwZXJhZG9zL3RhYmxhX2JvbGl2aWFbWzFdXSRDb25maXJtYWRvcyoxMDAsMSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kKHRhYmxhX2JvbGl2aWFbWzFdXSRBY3Rpdm9zL3RhYmxhX2JvbGl2aWFbWzFdXSRDb25maXJtYWRvcyoxMDAsMSkpKQ0KZGF0YS5mcmFtZSh0YWJsYV9ib2xpdmlhKQ0KYGBgDQoNCg0KIyBEZXBhcnRhbWVudG9zIA0KDQojIyBHcsOhZmljb3MgRGluw6FtaWNvcyB7LnRhYnNldH0NCg0KIyMjIENhc29zIG51ZXZvcw0KDQpgYGB7ciBmaWcud2lkdGg9OCxmaWcuaGVpZ2h0PTUsZWNobz1GQUxTRX0NCnQzPWMoVCxULFQpDQpmMz1jKEYsRixGKQ0KYm4zPWMoRix0MyxmMyxmMyxmMyxmMyxmMyxmMyxmMyxmMykNCmNiMz1jKGYzLEYgLHQzLGYzLGYzLGYzLGYzLGYzLGYzLGYzKQ0KY2gzPWMoZjMsZjMsRiAsdDMsZjMsZjMsZjMsZjMsZjMsZjMpDQpscDM9YyhmMyxmMyxmMyxGICx0MyxmMyxmMyxmMyxmMyxmMykNCm9yMz1jKGYzLGYzLGYzLGYzLEYgLHQzLGYzLGYzLGYzLGYzKQ0KcG4zPWMoZjMsZjMsZjMsZjMsZjMsRiAsdDMsZjMsZjMsZjMpDQpwdDM9YyhmMyxmMyxmMyxmMyxmMyxmMyxGICx0MyxmMyxmMykNCnNjMz1jKGYzLGYzLGYzLGYzLGYzLGYzLGYzLEYgLHQzLGYzKQ0KdGozPWMoZjMsZjMsZjMsZjMsZjMsZjMsZjMsZjMsRiAsdDMpDQoNCmJvdG9uZXNfMz1saXN0KGxpc3QodHlwZT0nYnV0dG9ucycsZGlyZWN0aW9uID0gInJpZ2h0Iix4YW5jaG9yID0gJ2xlZnQnLA0KICBwYWQgPSBsaXN0KCdyJz0gMCwgJ3QnPSA2MCkseCA9IDAseSA9IDEuMywNCiAgICAgICAgICAgICAgICBidXR0b25zPWxpc3QobGlzdChsYWJlbD0iQmVuaSIsbWV0aG9zPSJ1cGRhdGUiLGFyZ3M9bGlzdCgidmlzaWJsZSIsYm4zKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QobGFiZWw9IkNvY2hhYmFtYmEiLG1ldGhvcz0idXBkYXRlIixhcmdzPWxpc3QoInZpc2libGUiLGNiMykpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KGxhYmVsPSJDaHVxdWlzYWNhIixtZXRob3M9InVwZGF0ZSIsYXJncz1saXN0KCJ2aXNpYmxlIixjaDMpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdChsYWJlbD0iTGEgUGF6IixtZXRob3M9InVwZGF0ZSIsYXJncz1saXN0KCJ2aXNpYmxlIixscDMpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdChsYWJlbD0iT3J1cm8iLG1ldGhvcz0idXBkYXRlIixhcmdzPWxpc3QoInZpc2libGUiLG9yMykpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KGxhYmVsPSJQYW5kbyIsbWV0aG9zPSJ1cGRhdGUiLGFyZ3M9bGlzdCgidmlzaWJsZSIscG4zKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QobGFiZWw9IlBvdG9zw60iLG1ldGhvcz0idXBkYXRlIixhcmdzPWxpc3QoInZpc2libGUiLHB0MykpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KGxhYmVsPSJTYW50YSBDcnV6IixtZXRob3M9InVwZGF0ZSIsYXJncz1saXN0KCJ2aXNpYmxlIixzYzMpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdChsYWJlbD0iVGFyaWphIixtZXRob3M9InVwZGF0ZSIsYXJncz1saXN0KCJ2aXNpYmxlIix0ajMpKSkNCikpDQoNCmRlcD1wbG90X2x5KHR5cGUgPSAic2NhdHRlciIsbW9kZT0ibGluZXMiKSAlPiUgDQogIGFkZF90cmFjZSh4PWJkW1tldGlxdWV0YV9kZXBbMV1dXSRGZWNoYSx5PWJkW1tldGlxdWV0YV9kZXBbMV1dXSRDb25maXJtYWRvcywNCiAgICAgICAgICAgIG5hbWU9IkNvbmZpcm1hZG9zIix2aXNpYmxlPVQsbGluZT1saXN0KGNvbG9yPSIjRkE5NzVBIikpICU+JSANCiAgYWRkX3RyYWNlKHg9YmRbW2V0aXF1ZXRhX2RlcFsxXV1dJEZlY2hhLHk9YmRbW2V0aXF1ZXRhX2RlcFsxXV1dJERlY2Vzb3MsDQogICAgICAgICAgICBuYW1lPSJEZWNlc29zIix2aXNpYmxlPVQsbGluZT1saXN0KGNvbG9yPSIjNDk0NDUxIikpICU+JSANCiAgYWRkX3RyYWNlKHg9YmRbW2V0aXF1ZXRhX2RlcFsxXV1dJEZlY2hhLHk9YmRbW2V0aXF1ZXRhX2RlcFsxXV1dJFJlY3VwZXJhZG9zICwNCiAgICAgICAgICAgIG5hbWU9IlJlY3VwZXJhZG9zIix2aXNpYmxlPVQsbGluZT1saXN0KGNvbG9yPSIjNEVGMTUxIikpDQoNCmZvcihpIGluIDI6OSl7DQogICAgICBkZXA9ZGVwICU+JSANCiAgICAgICAgYWRkX3RyYWNlKHg9YmRbW2V0aXF1ZXRhX2RlcFtpXV1dJEZlY2hhLHk9YmRbW2V0aXF1ZXRhX2RlcFtpXV1dJENvbmZpcm1hZG9zLA0KICAgICAgICAgICAgICAgICAgbmFtZT0iQ29uZmlybWFkb3MiLHZpc2libGU9RixsaW5lPWxpc3QoY29sb3I9IiNGQTk3NUEiKSkgJT4lIA0KICAgICAgICBhZGRfdHJhY2UoeD1iZFtbZXRpcXVldGFfZGVwW2ldXV0kRmVjaGEseT1iZFtbZXRpcXVldGFfZGVwW2ldXV0kRGVjZXNvcywNCiAgICAgICAgICAgICAgICAgIG5hbWU9IkRlY2Vzb3MiLHZpc2libGU9RixsaW5lPWxpc3QoY29sb3I9IiM0OTQ0NTEiKSkgJT4lIA0KICAgICAgICBhZGRfdHJhY2UoeD1iZFtbZXRpcXVldGFfZGVwW2ldXV0kRmVjaGEseT1iZFtbZXRpcXVldGFfZGVwW2ldXV0kUmVjdXBlcmFkb3MsDQogICAgICAgICAgICAgICAgICBuYW1lPSJSZWN1cGVyYWRvcyIsdmlzaWJsZT1GLGxpbmU9bGlzdChjb2xvcj0iIzRFRjE1MSIpKX0NCg0KZGVwJT4lICANCiAgIGxheW91dCh0aXRsZT0iQm9saXZpYTogRGVwYXJ0YW1lbnRvcyBwb3IgQ2Fzb3MgTnVldm9zIiwNCiAgICB1cGRhdGVtZW51cz1ib3RvbmVzXzMpDQoNCmBgYA0KDQoNCiMjIyBDYXNvcyBhY3VtdWxhZG9zDQoNCg0KYGBge3IgZmlnLndpZHRoPTgsZmlnLmhlaWdodD01LGVjaG89RkFMU0V9DQp0ND1jKFQsVCxULFQpDQpmND1jKEYsRixGLEYpDQoNCmJuND1jKEYsdDQsZjQsZjQsZjQsZjQsZjQsZjQsZjQsZjQpDQpjYjQ9YyhmNCxGICx0NCxmNCxmNCxmNCxmNCxmNCxmNCxmNCkNCmNoND1jKGY0LGY0LEYgLHQ0LGY0LGY0LGY0LGY0LGY0LGY0KQ0KbHA0PWMoZjQsZjQsZjQsRiAsdDQsZjQsZjQsZjQsZjQsZjQpDQpvcjQ9YyhmNCxmNCxmNCxmNCxGICx0NCxmNCxmNCxmNCxmNCkNCnBuND1jKGY0LGY0LGY0LGY0LGY0LEYgLHQ0LGY0LGY0LGY0KQ0KcHQ0PWMoZjQsZjQsZjQsZjQsZjQsZjQsRiAsdDQsZjQsZjQpDQpzYzQ9YyhmNCxmNCxmNCxmNCxmNCxmNCxmNCxGICx0NCxmNCkNCnRqND1jKGY0LGY0LGY0LGY0LGY0LGY0LGY0LGY0LEYgLHQ0KQ0KDQpib3RvbmVzXzQ9bGlzdChsaXN0KHR5cGU9J2J1dHRvbnMnLGRpcmVjdGlvbiA9ICJyaWdodCIseGFuY2hvciA9ICdsZWZ0JywNCiAgcGFkID0gbGlzdCgncic9IDAsICd0Jz0gNjApLHggPSAwLHkgPSAxLjMsDQogICAgICAgICAgICAgICAgYnV0dG9ucz1saXN0KGxpc3QobGFiZWw9IkJlbmkiLG1ldGhvcz0idXBkYXRlIixhcmdzPWxpc3QoInZpc2libGUiLGJuNCkpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KGxhYmVsPSJDb2NoYWJhbWJhIixtZXRob3M9InVwZGF0ZSIsYXJncz1saXN0KCJ2aXNpYmxlIixjYjQpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdChsYWJlbD0iQ2h1cXVpc2FjYSIsbWV0aG9zPSJ1cGRhdGUiLGFyZ3M9bGlzdCgidmlzaWJsZSIsY2g0KSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QobGFiZWw9IkxhIFBheiIsbWV0aG9zPSJ1cGRhdGUiLGFyZ3M9bGlzdCgidmlzaWJsZSIsbHA0KSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QobGFiZWw9Ik9ydXJvIixtZXRob3M9InVwZGF0ZSIsYXJncz1saXN0KCJ2aXNpYmxlIixvcjQpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdChsYWJlbD0iUGFuZG8iLG1ldGhvcz0idXBkYXRlIixhcmdzPWxpc3QoInZpc2libGUiLHBuNCkpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KGxhYmVsPSJQb3Rvc8OtIixtZXRob3M9InVwZGF0ZSIsYXJncz1saXN0KCJ2aXNpYmxlIixwdDQpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdChsYWJlbD0iU2FudGEgQ3J1eiIsbWV0aG9zPSJ1cGRhdGUiLGFyZ3M9bGlzdCgidmlzaWJsZSIsc2M0KSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QobGFiZWw9IlRhcmlqYSIsbWV0aG9zPSJ1cGRhdGUiLGFyZ3M9bGlzdCgidmlzaWJsZSIsdGo0KSkpDQopKQ0KDQpkZXBfYWN1bT1wbG90X2x5KHR5cGUgPSAic2NhdHRlciIsbW9kZT0ibGluZXMiKSAlPiUgDQogIGFkZF90cmFjZSh4PWJkW1tldGlxdWV0YV9kZXBbMV1dXSRGZWNoYSx5PWJkW1tldGlxdWV0YV9kZXBbMV1dXSRUb3RhbF9Db25maXJtYWRvcywNCiAgICAgICAgICAgIG5hbWU9IlRvdGFsIENvbmZpcm1hZG9zIix2aXNpYmxlPVQsbGluZT1saXN0KGNvbG9yPSIjRkE5NzVBIikpICU+JSANCiAgYWRkX3RyYWNlKHg9YmRbW2V0aXF1ZXRhX2RlcFsxXV1dJEZlY2hhLHk9YmRbW2V0aXF1ZXRhX2RlcFsxXV1dJFRvdGFsX0RlY2Vzb3MsDQogICAgICAgICAgICBuYW1lPSJUb3RhbCBEZWNlc29zIix2aXNpYmxlPVQsbGluZT1saXN0KGNvbG9yPSIjNDk0NDUxIikpICU+JSANCiAgYWRkX3RyYWNlKHg9YmRbW2V0aXF1ZXRhX2RlcFsxXV1dJEZlY2hhLHk9YmRbW2V0aXF1ZXRhX2RlcFsxXV1dJFRvdGFsX1JlY3VwZXJhZG9zLA0KICAgICAgICAgICAgbmFtZT0iVG90YWwgUmVjdXBlcmFkb3MiLHZpc2libGU9VCxsaW5lPWxpc3QoY29sb3I9IiM0RUYxNTEiKSkgJT4lIA0KICBhZGRfdHJhY2UoeD1iZFtbZXRpcXVldGFfZGVwWzFdXV0kRmVjaGEseT1iZFtbZXRpcXVldGFfZGVwWzFdXV0kVG90YWxfQWN0aXZvcywNCiAgICAgICAgICAgIG5hbWU9IlRvdGFsIEFjdGl2b3MiLHZpc2libGU9VCxsaW5lPWxpc3QoY29sb3I9IiNGOTQzMzEiKSkgDQoNCg0KZm9yKGkgaW4gMjo5KXsNCiAgICAgIGRlcF9hY3VtPWRlcF9hY3VtICU+JSANCiAgICAgICAgYWRkX3RyYWNlKHg9YmRbW2V0aXF1ZXRhX2RlcFtpXV1dJEZlY2hhLHk9YmRbW2V0aXF1ZXRhX2RlcFtpXV1dJFRvdGFsX0NvbmZpcm1hZG9zLA0KICAgICAgICAgICAgICAgICAgbmFtZT0iVG90YWwgQ29uZmlybWFkb3MiLHZpc2libGU9RixsaW5lPWxpc3QoY29sb3I9IiNGQTk3NUEiKSkgJT4lIA0KICAgICAgICBhZGRfdHJhY2UoeD1iZFtbZXRpcXVldGFfZGVwW2ldXV0kRmVjaGEseT1iZFtbZXRpcXVldGFfZGVwW2ldXV0kVG90YWxfRGVjZXNvcywNCiAgICAgICAgICAgICAgICAgIG5hbWU9IlRvdGFsIERlY2Vzb3MiLHZpc2libGU9RixsaW5lPWxpc3QoY29sb3I9IiM0OTQ0NTEiKSkgJT4lIA0KICAgICAgICBhZGRfdHJhY2UoeD1iZFtbZXRpcXVldGFfZGVwW2ldXV0kRmVjaGEseT1iZFtbZXRpcXVldGFfZGVwW2ldXV0kVG90YWxfUmVjdXBlcmFkb3MsDQogICAgICAgICAgICAgICAgICBuYW1lPSJUb3RhbCBSZWN1cGVyYWRvcyIsdmlzaWJsZT1GLGxpbmU9bGlzdChjb2xvcj0iIzRFRjE1MSIpKSAlPiUgDQogICAgICAgIGFkZF90cmFjZSh4PWJkW1tldGlxdWV0YV9kZXBbaV1dXSRGZWNoYSx5PWJkW1tldGlxdWV0YV9kZXBbaV1dXSRUb3RhbF9BY3Rpdm9zLA0KICAgICAgICAgICAgICAgICAgbmFtZT0iVG90YWwgQWN0aXZvcyIsdmlzaWJsZT1GLGxpbmU9bGlzdChjb2xvcj0iI0Y5NDMzMSIpKSB9DQoNCmRlcF9hY3VtJT4lICANCiAgIGxheW91dCh0aXRsZT0iQm9saXZpYTogRGVwYXJ0YW1lbnRvcyBwb3IgQ2Fzb3MgQWN1bXVsYWRvcyIsDQogICAgdXBkYXRlbWVudXM9Ym90b25lc180KQ0KDQpgYGANCg0KIyMjIFRpcG8gZGUgY2Fzb3MgbnVldm9zDQoNCmBgYHtyIGZpZy53aWR0aD04LGZpZy5oZWlnaHQ9NSxlY2hvPUZBTFNFfQ0KDQp0PWxpc3QoVCxULFQsVCxULFQsVCxULFQpDQpmPWxpc3QoRixGLEYsRixGLEYsRixGLEYpDQpjMT1jKEYsdCxmLGYpDQpkMT1jKGYsRix0LGYpDQpyMT1jKGYsZixGLHQpDQoNCmJvdG9uZXNfMT1saXN0KGxpc3QodHlwZT0nYnV0dG9ucycsZGlyZWN0aW9uID0gInJpZ2h0Iix4YW5jaG9yID0gJ2xlZnQnLA0KICBwYWQgPSBsaXN0KCdyJz0gMCwgJ3QnPSA2MCkseCA9IDAseSA9IDEuMywNCiAgICAgICAgICAgICAgICBidXR0b25zPWxpc3QobGlzdChsYWJlbD0iQ29uZmlybWFkb3MiLG1ldGhvcz0idXBkYXRlIixhcmdzPWxpc3QoInZpc2libGUiLGMxKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QobGFiZWw9IkRlY2Vzb3MiLG1ldGhvcz0idXBkYXRlIixhcmdzPWxpc3QoInZpc2libGUiLGQxKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QobGFiZWw9IlJlY3VwZXJhZG9zIixtZXRob3M9InVwZGF0ZSIsYXJncz1saXN0KCJ2aXNpYmxlIixyMSkpKQ0KKSkNCg0KY29sb3Jlcz1jKCIjMEQ2NTFBIiwiIzA5OTBCRiIsIiNFNzRGMzciLCIjRkY0RjQwIiwiI0JGNjI4RCIsIiM2NkJGNjIiLCIjQzQ3OTRGIiwiIzJCQUQwRSIsIiM2MjZEQkYiKQ0KDQpudWV2b3M9cGxvdF9seSh0eXBlID0gInNjYXR0ZXIiLG1vZGU9ImxpbmVzIikNCmZvcihpIGluIDE6OSl7DQogICAgICBudWV2b3M9bnVldm9zICU+JSANCiAgICAgICAgYWRkX3RyYWNlKHg9YmRbW2V0aXF1ZXRhX2RlcFtpXV1dJEZlY2hhLHk9YmRbW2V0aXF1ZXRhX2RlcFtpXV1dJENvbmZpcm1hZG9zLA0KICAgICAgICAgICAgICAgICAgbmFtZT1ldGlxdWV0YV9kZXBbaV0sdmlzaWJsZT1ULGxpbmU9bGlzdChjb2xvcj1jb2xvcmVzW2ldKSl9DQpmb3IoaSBpbiAxOjkpew0KICAgICAgbnVldm9zPW51ZXZvcyAlPiUgDQogICAgICAgIGFkZF90cmFjZSh4PWJkW1tldGlxdWV0YV9kZXBbaV1dXSRGZWNoYSx5PWJkW1tldGlxdWV0YV9kZXBbaV1dXSREZWNlc29zLA0KICAgICAgICAgICAgICAgICAgbmFtZT1ldGlxdWV0YV9kZXBbaV0sdmlzaWJsZT1GLGxpbmU9bGlzdChjb2xvcj1jb2xvcmVzW2ldKSl9DQpmb3IoaSBpbiAxOjkpew0KICAgICAgbnVldm9zPW51ZXZvcyAlPiUgDQogICAgICAgIGFkZF90cmFjZSh4PWJkW1tldGlxdWV0YV9kZXBbaV1dXSRGZWNoYSx5PWJkW1tldGlxdWV0YV9kZXBbaV1dXSRSZWN1cGVyYWRvcywNCiAgICAgICAgICAgICAgICAgIG5hbWU9ZXRpcXVldGFfZGVwW2ldLHZpc2libGU9RixsaW5lPWxpc3QoY29sb3I9Y29sb3Jlc1tpXSkpfQ0KDQpudWV2b3MlPiUgIA0KICAgbGF5b3V0KHRpdGxlPSJCT0xJVklBOiBUSVBPIERFIENBU09TIE5VRVZPUyBQT1IgREVQQVJUQU1FTlRPIix1cGRhdGVtZW51cz1ib3RvbmVzXzEpDQoNCiNibl9uYz14dHMoeD1iblssMzo1XSxvcmRlci5ieSA9IGJuJGZlY2hhKQ0KI2R5Z3JhcGgoYm5fbmMseGxhYiA9ICJGZWNoYSIseWxhYiA9ICJOw7ptZXJvIGRlIGNhc29zIixtYWluPSJCZW5pIikgJT4lIA0KICMgZHlSYW5nZVNlbGVjdG9yKCkgJT4lDQogICNkeU9wdGlvbnMoZHJhd0dyaWQgPSBGQUxTRSxzdHJva2VXaWR0aD0yLCBjb2xvcnM9YygiI0U5MzUwNCIsIiMwMTAzMzIiLCIjMTVDRjBEIikpICU+JSANCiAgI2R5Q3Jvc3NoYWlyKGRpcmVjdGlvbiA9ICJ2ZXJ0aWNhbCIpIA0KDQpgYGANCg0KDQojIyMgVGlwbyBkZSBjYXNvcyBhY3VtdWxhZG9zDQoNCmBgYHtyIGZpZy53aWR0aD04LGZpZy5oZWlnaHQ9NSxlY2hvPUZBTFNFfQ0KYzI9YyhGLHQsZixmLGYpDQpkMj1jKGYsRix0LGYsZikNCnIyPWMoZixmLEYsdCxmKQ0KYTI9YyhmLGYsZixGLHQpDQpib3RvbmVzXzI9bGlzdChsaXN0KHR5cGU9J2J1dHRvbnMnLGRpcmVjdGlvbiA9ICJyaWdodCIseGFuY2hvciA9ICdsZWZ0JywNCiAgcGFkID0gbGlzdCgncic9IDAsICd0Jz0gNjApLHggPSAwLHkgPSAxLjMsDQogICAgICAgICAgICAgICAgYnV0dG9ucz1saXN0KGxpc3QobGFiZWw9IlRvdGFsIENvbmZpcm1hZG9zIixtZXRob3M9InVwZGF0ZSIsYXJncz1saXN0KCJ2aXNpYmxlIixjMikpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KGxhYmVsPSJUb3RhbCBEZWNlc29zIixtZXRob3M9InVwZGF0ZSIsYXJncz1saXN0KCJ2aXNpYmxlIixkMikpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KGxhYmVsPSJUb3RhbCBSZWN1cGVyYWRvcyIsbWV0aG9zPSJ1cGRhdGUiLGFyZ3M9bGlzdCgidmlzaWJsZSIscjIpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdChsYWJlbD0iVG90YWwgQWN0aXZvcyIsbWV0aG9zPSJ1cGRhdGUiLGFyZ3M9bGlzdCgidmlzaWJsZSIsYTIpKSkNCikpDQoNCmFjdW11bGFkb3M9cGxvdF9seSh0eXBlID0gInNjYXR0ZXIiLG1vZGU9ImxpbmVzIikNCmZvcihpIGluIDE6OSl7DQogICAgICBhY3VtdWxhZG9zPWFjdW11bGFkb3MgJT4lIA0KICAgICAgICBhZGRfdHJhY2UoeD1iZFtbZXRpcXVldGFfZGVwW2ldXV0kRmVjaGEseT1iZFtbZXRpcXVldGFfZGVwW2ldXV0kVG90YWxfQ29uZmlybWFkb3MsDQogICAgICAgICAgICAgICAgICBuYW1lPWV0aXF1ZXRhX2RlcFtpXSx2aXNpYmxlPVQsbGluZT1saXN0KGNvbG9yPWNvbG9yZXNbaV0pKX0NCmZvcihpIGluIDE6OSl7DQogICAgICBhY3VtdWxhZG9zPWFjdW11bGFkb3MgJT4lIA0KICAgICAgICBhZGRfdHJhY2UoeD1iZFtbZXRpcXVldGFfZGVwW2ldXV0kRmVjaGEseT1iZFtbZXRpcXVldGFfZGVwW2ldXV0kVG90YWxfRGVjZXNvcywNCiAgICAgICAgICAgICAgICAgIG5hbWU9ZXRpcXVldGFfZGVwW2ldLHZpc2libGU9RixsaW5lPWxpc3QoY29sb3I9Y29sb3Jlc1tpXSkpfQ0KZm9yKGkgaW4gMTo5KXsNCiAgICAgIGFjdW11bGFkb3M9YWN1bXVsYWRvcyAlPiUgDQogICAgICAgIGFkZF90cmFjZSh4PWJkW1tldGlxdWV0YV9kZXBbaV1dXSRGZWNoYSx5PWJkW1tldGlxdWV0YV9kZXBbaV1dXSRUb3RhbF9SZWN1cGVyYWRvcywNCiAgICAgICAgICAgICAgICAgIG5hbWU9ZXRpcXVldGFfZGVwW2ldLHZpc2libGU9RixsaW5lPWxpc3QoY29sb3I9Y29sb3Jlc1tpXSkpfQ0KZm9yKGkgaW4gMTo5KXsNCiAgICAgIGFjdW11bGFkb3M9YWN1bXVsYWRvcyAlPiUgDQogICAgICAgIGFkZF90cmFjZSh4PWJkW1tldGlxdWV0YV9kZXBbaV1dXSRGZWNoYSx5PWJkW1tldGlxdWV0YV9kZXBbaV1dXSRUb3RhbF9BY3Rpdm9zLA0KICAgICAgICAgICAgICAgICAgbmFtZT1ldGlxdWV0YV9kZXBbaV0sdmlzaWJsZT1GLGxpbmU9bGlzdChjb2xvcj1jb2xvcmVzW2ldKSl9DQoNCmFjdW11bGFkb3MlPiUgIA0KICAgbGF5b3V0KHRpdGxlPSJCT0xJVklBOiBUSVBPIERFIENBU09TIEFDVU1VTEFET1MgUE9SIERFUEFSVEFNRU5UTyIsDQogICAgdXBkYXRlbWVudXM9Ym90b25lc18yKQ0KDQoNCmBgYA0KDQojIyBUYWJsYXMgZGUgRnJlY3VlbmNpYSB7LnRhYnNldH0NCg0KIyMjIEJlbmkgey19DQoNCmBgYHtyIHRhYmxhX2JlbmksZWNobz1GQUxTRX0NCnRhYmxhX2Jlbmk9YmRfZGVwW1sxXV0gJT4lIA0KICBkcGx5cjo6c3VtbWFyaXNlKENvbmZpcm1hZG9zPXN1bShDb25maXJtYWRvcyksDQogICAgICAgICAgICAgICAgICAgRGVjZXNvcz1zdW0oRGVjZXNvcyksDQogICAgICAgICAgICAgICAgICAgUmVjdXBlcmFkb3M9c3VtKFJlY3VwZXJhZG9zKSwNCiAgICAgICAgICAgICAgICAgICBBY3Rpdm9zPXN1bShBY3Rpdm9zKSkNCnRhYmxhX2Jlbmk9bGlzdCh0YWJsYV9iZW5pKQ0KDQp0YWJsYV9iZW5pPWxpc3QoVGlwbz1jKCJDb25maXJtYWRvcyIsIkRlY2Vzb3MiLCJSZWN1cGVyYWRvcyIsIkFjdGl2b3MiKSwNCiAgICAgICAgICAgICAgICAgICBOcm9fY2Fzb3M9Yyh0YWJsYV9iZW5pW1sxXV0kQ29uZmlybWFkb3MsdGFibGFfYmVuaVtbMV1dJERlY2Vzb3MsdGFibGFfYmVuaVtbMV1dJFJlY3VwZXJhZG9zLHRhYmxhX2JlbmlbWzFdXSRBY3Rpdm9zKSwNCiAgICAgICAgICAgICAgICAgICBQb3JjZW50YWplPWMoMTAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZCh0YWJsYV9iZW5pW1sxXV0kRGVjZXNvcy90YWJsYV9iZW5pW1sxXV0kQ29uZmlybWFkb3MqMTAwLDEpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZCh0YWJsYV9iZW5pW1sxXV0kUmVjdXBlcmFkb3MvdGFibGFfYmVuaVtbMV1dJENvbmZpcm1hZG9zKjEwMCwxKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmQodGFibGFfYmVuaVtbMV1dJEFjdGl2b3MvdGFibGFfYmVuaVtbMV1dJENvbmZpcm1hZG9zKjEwMCwxKSkpDQpkYXRhLmZyYW1lKHRhYmxhX2JlbmkpDQoNCmBgYA0KDQojIyMgQ29jaGFiYW1iYSB7LX0NCg0KYGBge3IgdGFibGFfY29jaGFiYW1iYSxlY2hvPUZBTFNFfQ0KdGFibGFfY29jaGFiYW1iYT1iZF9kZXBbWzJdXSAlPiUgDQogIGRwbHlyOjpzdW1tYXJpc2UoQ29uZmlybWFkb3M9c3VtKENvbmZpcm1hZG9zKSwNCiAgICAgICAgICAgICAgICAgICBEZWNlc29zPXN1bShEZWNlc29zKSwNCiAgICAgICAgICAgICAgICAgICBSZWN1cGVyYWRvcz1zdW0oUmVjdXBlcmFkb3MpLA0KICAgICAgICAgICAgICAgICAgIEFjdGl2b3M9c3VtKEFjdGl2b3MpKQ0KdGFibGFfY29jaGFiYW1iYT1saXN0KHRhYmxhX2NvY2hhYmFtYmEpDQoNCnRhYmxhX2NvY2hhYmFtYmE9bGlzdChUaXBvPWMoIkNvbmZpcm1hZG9zIiwiRGVjZXNvcyIsIlJlY3VwZXJhZG9zIiwiQWN0aXZvcyIpLA0KICAgICAgICAgICAgICAgICAgIE5yb19jYXNvcz1jKHRhYmxhX2NvY2hhYmFtYmFbWzFdXSRDb25maXJtYWRvcyx0YWJsYV9jb2NoYWJhbWJhW1sxXV0kRGVjZXNvcyx0YWJsYV9jb2NoYWJhbWJhW1sxXV0kUmVjdXBlcmFkb3MsdGFibGFfY29jaGFiYW1iYVtbMV1dJEFjdGl2b3MpLA0KICAgICAgICAgICAgICAgICAgIFBvcmNlbnRhamU9YygxMDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kKHRhYmxhX2NvY2hhYmFtYmFbWzFdXSREZWNlc29zL3RhYmxhX2NvY2hhYmFtYmFbWzFdXSRDb25maXJtYWRvcyoxMDAsMSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kKHRhYmxhX2NvY2hhYmFtYmFbWzFdXSRSZWN1cGVyYWRvcy90YWJsYV9jb2NoYWJhbWJhW1sxXV0kQ29uZmlybWFkb3MqMTAwLDEpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZCh0YWJsYV9jb2NoYWJhbWJhW1sxXV0kQWN0aXZvcy90YWJsYV9jb2NoYWJhbWJhW1sxXV0kQ29uZmlybWFkb3MqMTAwLDEpKSkNCmRhdGEuZnJhbWUodGFibGFfY29jaGFiYW1iYSkNCg0KYGBgDQojIyMgQ2h1cXVpc2FjYSB7LX0NCg0KYGBge3IgdGFibGFfY2h1cXVpc2FjYSxlY2hvPUZBTFNFfQ0KdGFibGFfY2h1cXVpc2FjYT1iZF9kZXBbWzNdXSAlPiUgDQogIGRwbHlyOjpzdW1tYXJpc2UoQ29uZmlybWFkb3M9c3VtKENvbmZpcm1hZG9zKSwNCiAgICAgICAgICAgICAgICAgICBEZWNlc29zPXN1bShEZWNlc29zKSwNCiAgICAgICAgICAgICAgICAgICBSZWN1cGVyYWRvcz1zdW0oUmVjdXBlcmFkb3MpLA0KICAgICAgICAgICAgICAgICAgIEFjdGl2b3M9c3VtKEFjdGl2b3MpKQ0KdGFibGFfY2h1cXVpc2FjYT1saXN0KHRhYmxhX2NodXF1aXNhY2EpDQoNCnRhYmxhX2NodXF1aXNhY2E9bGlzdChUaXBvPWMoIkNvbmZpcm1hZG9zIiwiRGVjZXNvcyIsIlJlY3VwZXJhZG9zIiwiQWN0aXZvcyIpLA0KICAgICAgICAgICAgICAgICAgIE5yb19jYXNvcz1jKHRhYmxhX2NodXF1aXNhY2FbWzFdXSRDb25maXJtYWRvcyx0YWJsYV9jaHVxdWlzYWNhW1sxXV0kRGVjZXNvcyx0YWJsYV9jaHVxdWlzYWNhW1sxXV0kUmVjdXBlcmFkb3MsdGFibGFfY2h1cXVpc2FjYVtbMV1dJEFjdGl2b3MpLA0KICAgICAgICAgICAgICAgICAgIFBvcmNlbnRhamU9YygxMDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kKHRhYmxhX2NodXF1aXNhY2FbWzFdXSREZWNlc29zL3RhYmxhX2NodXF1aXNhY2FbWzFdXSRDb25maXJtYWRvcyoxMDAsMSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kKHRhYmxhX2NodXF1aXNhY2FbWzFdXSRSZWN1cGVyYWRvcy90YWJsYV9jaHVxdWlzYWNhW1sxXV0kQ29uZmlybWFkb3MqMTAwLDEpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZCh0YWJsYV9jaHVxdWlzYWNhW1sxXV0kQWN0aXZvcy90YWJsYV9jaHVxdWlzYWNhW1sxXV0kQ29uZmlybWFkb3MqMTAwLDEpKSkNCmRhdGEuZnJhbWUodGFibGFfY2h1cXVpc2FjYSkNCg0KYGBgDQojIyMgTGEgUGF6IHstfQ0KDQpgYGB7ciB0YWJsYV9sYXBheixlY2hvPUZBTFNFfQ0KdGFibGFfbGFwYXo9YmRfZGVwW1s0XV0gJT4lIA0KICBkcGx5cjo6c3VtbWFyaXNlKENvbmZpcm1hZG9zPXN1bShDb25maXJtYWRvcyksDQogICAgICAgICAgICAgICAgICAgRGVjZXNvcz1zdW0oRGVjZXNvcyksDQogICAgICAgICAgICAgICAgICAgUmVjdXBlcmFkb3M9c3VtKFJlY3VwZXJhZG9zKSwNCiAgICAgICAgICAgICAgICAgICBBY3Rpdm9zPXN1bShBY3Rpdm9zKSkNCnRhYmxhX2xhcGF6PWxpc3QodGFibGFfbGFwYXopDQoNCnRhYmxhX2xhcGF6PWxpc3QoVGlwbz1jKCJDb25maXJtYWRvcyIsIkRlY2Vzb3MiLCJSZWN1cGVyYWRvcyIsIkFjdGl2b3MiKSwNCiAgICAgICAgICAgICAgICAgICBOcm9fY2Fzb3M9Yyh0YWJsYV9sYXBheltbMV1dJENvbmZpcm1hZG9zLHRhYmxhX2xhcGF6W1sxXV0kRGVjZXNvcyx0YWJsYV9sYXBheltbMV1dJFJlY3VwZXJhZG9zLHRhYmxhX2xhcGF6W1sxXV0kQWN0aXZvcyksDQogICAgICAgICAgICAgICAgICAgUG9yY2VudGFqZT1jKDEwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmQodGFibGFfbGFwYXpbWzFdXSREZWNlc29zL3RhYmxhX2xhcGF6W1sxXV0kQ29uZmlybWFkb3MqMTAwLDEpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZCh0YWJsYV9sYXBheltbMV1dJFJlY3VwZXJhZG9zL3RhYmxhX2xhcGF6W1sxXV0kQ29uZmlybWFkb3MqMTAwLDEpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZCh0YWJsYV9sYXBheltbMV1dJEFjdGl2b3MvdGFibGFfbGFwYXpbWzFdXSRDb25maXJtYWRvcyoxMDAsMSkpKQ0KZGF0YS5mcmFtZSh0YWJsYV9sYXBheikNCg0KYGBgDQoNCiMjIyBPcnVybyB7LX0NCg0KYGBge3IgdGFibGFfb3J1cm8sZWNobz1GQUxTRX0NCnRhYmxhX29ydXJvPWJkX2RlcFtbNV1dICU+JSANCiAgZHBseXI6OnN1bW1hcmlzZShDb25maXJtYWRvcz1zdW0oQ29uZmlybWFkb3MpLA0KICAgICAgICAgICAgICAgICAgIERlY2Vzb3M9c3VtKERlY2Vzb3MpLA0KICAgICAgICAgICAgICAgICAgIFJlY3VwZXJhZG9zPXN1bShSZWN1cGVyYWRvcyksDQogICAgICAgICAgICAgICAgICAgQWN0aXZvcz1zdW0oQWN0aXZvcykpDQp0YWJsYV9vcnVybz1saXN0KHRhYmxhX29ydXJvKQ0KDQp0YWJsYV9vcnVybz1saXN0KFRpcG89YygiQ29uZmlybWFkb3MiLCJEZWNlc29zIiwiUmVjdXBlcmFkb3MiLCJBY3Rpdm9zIiksDQogICAgICAgICAgICAgICAgICAgTnJvX2Nhc29zPWModGFibGFfb3J1cm9bWzFdXSRDb25maXJtYWRvcyx0YWJsYV9vcnVyb1tbMV1dJERlY2Vzb3MsdGFibGFfb3J1cm9bWzFdXSRSZWN1cGVyYWRvcyx0YWJsYV9vcnVyb1tbMV1dJEFjdGl2b3MpLA0KICAgICAgICAgICAgICAgICAgIFBvcmNlbnRhamU9YygxMDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kKHRhYmxhX29ydXJvW1sxXV0kRGVjZXNvcy90YWJsYV9vcnVyb1tbMV1dJENvbmZpcm1hZG9zKjEwMCwxKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmQodGFibGFfb3J1cm9bWzFdXSRSZWN1cGVyYWRvcy90YWJsYV9vcnVyb1tbMV1dJENvbmZpcm1hZG9zKjEwMCwxKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmQodGFibGFfb3J1cm9bWzFdXSRBY3Rpdm9zL3RhYmxhX29ydXJvW1sxXV0kQ29uZmlybWFkb3MqMTAwLDEpKSkNCmRhdGEuZnJhbWUodGFibGFfb3J1cm8pDQoNCmBgYA0KDQojIyMgUGFuZG8gey19DQoNCmBgYHtyIHRhYmxhX3BhbmRvLGVjaG89RkFMU0V9DQp0YWJsYV9wYW5kbz1iZF9kZXBbWzZdXSAlPiUgDQogIGRwbHlyOjpzdW1tYXJpc2UoQ29uZmlybWFkb3M9c3VtKENvbmZpcm1hZG9zKSwNCiAgICAgICAgICAgICAgICAgICBEZWNlc29zPXN1bShEZWNlc29zKSwNCiAgICAgICAgICAgICAgICAgICBSZWN1cGVyYWRvcz1zdW0oUmVjdXBlcmFkb3MpLA0KICAgICAgICAgICAgICAgICAgIEFjdGl2b3M9c3VtKEFjdGl2b3MpKQ0KdGFibGFfcGFuZG89bGlzdCh0YWJsYV9wYW5kbykNCg0KdGFibGFfcGFuZG89bGlzdChUaXBvPWMoIkNvbmZpcm1hZG9zIiwiRGVjZXNvcyIsIlJlY3VwZXJhZG9zIiwiQWN0aXZvcyIpLA0KICAgICAgICAgICAgICAgICAgIE5yb19jYXNvcz1jKHRhYmxhX3BhbmRvW1sxXV0kQ29uZmlybWFkb3MsdGFibGFfcGFuZG9bWzFdXSREZWNlc29zLHRhYmxhX3BhbmRvW1sxXV0kUmVjdXBlcmFkb3MsdGFibGFfcGFuZG9bWzFdXSRBY3Rpdm9zKSwNCiAgICAgICAgICAgICAgICAgICBQb3JjZW50YWplPWMoMTAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZCh0YWJsYV9wYW5kb1tbMV1dJERlY2Vzb3MvdGFibGFfcGFuZG9bWzFdXSRDb25maXJtYWRvcyoxMDAsMSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kKHRhYmxhX3BhbmRvW1sxXV0kUmVjdXBlcmFkb3MvdGFibGFfcGFuZG9bWzFdXSRDb25maXJtYWRvcyoxMDAsMSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kKHRhYmxhX3BhbmRvW1sxXV0kQWN0aXZvcy90YWJsYV9wYW5kb1tbMV1dJENvbmZpcm1hZG9zKjEwMCwxKSkpDQpkYXRhLmZyYW1lKHRhYmxhX3BhbmRvKQ0KDQpgYGANCg0KDQojIyMgUG90b3PDrSB7LX0NCg0KYGBge3IgdGFibGFfcG90b3NpLGVjaG89RkFMU0V9DQp0YWJsYV9wb3Rvc2k9YmRfZGVwW1s3XV0gJT4lIA0KICBkcGx5cjo6c3VtbWFyaXNlKENvbmZpcm1hZG9zPXN1bShDb25maXJtYWRvcyksDQogICAgICAgICAgICAgICAgICAgRGVjZXNvcz1zdW0oRGVjZXNvcyksDQogICAgICAgICAgICAgICAgICAgUmVjdXBlcmFkb3M9c3VtKFJlY3VwZXJhZG9zKSwNCiAgICAgICAgICAgICAgICAgICBBY3Rpdm9zPXN1bShBY3Rpdm9zKSkNCnRhYmxhX3BvdG9zaT1saXN0KHRhYmxhX3BvdG9zaSkNCg0KdGFibGFfcG90b3NpPWxpc3QoVGlwbz1jKCJDb25maXJtYWRvcyIsIkRlY2Vzb3MiLCJSZWN1cGVyYWRvcyIsIkFjdGl2b3MiKSwNCiAgICAgICAgICAgICAgICAgICBOcm9fY2Fzb3M9Yyh0YWJsYV9wb3Rvc2lbWzFdXSRDb25maXJtYWRvcyx0YWJsYV9wb3Rvc2lbWzFdXSREZWNlc29zLHRhYmxhX3BvdG9zaVtbMV1dJFJlY3VwZXJhZG9zLHRhYmxhX3BvdG9zaVtbMV1dJEFjdGl2b3MpLA0KICAgICAgICAgICAgICAgICAgIFBvcmNlbnRhamU9YygxMDAsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kKHRhYmxhX3BvdG9zaVtbMV1dJERlY2Vzb3MvdGFibGFfcG90b3NpW1sxXV0kQ29uZmlybWFkb3MqMTAwLDEpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZCh0YWJsYV9wb3Rvc2lbWzFdXSRSZWN1cGVyYWRvcy90YWJsYV9wb3Rvc2lbWzFdXSRDb25maXJtYWRvcyoxMDAsMSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kKHRhYmxhX3BvdG9zaVtbMV1dJEFjdGl2b3MvdGFibGFfcG90b3NpW1sxXV0kQ29uZmlybWFkb3MqMTAwLDEpKSkNCmRhdGEuZnJhbWUodGFibGFfcG90b3NpKQ0KDQpgYGANCg0KIyMjIFNhbnRhIENydXogey19DQoNCmBgYHtyIHRhYmxhX3NhbnRhY3J1eixlY2hvPUZBTFNFfQ0KdGFibGFfc2FudGFjcnV6PWJkX2RlcFtbOF1dICU+JSANCiAgZHBseXI6OnN1bW1hcmlzZShDb25maXJtYWRvcz1zdW0oQ29uZmlybWFkb3MpLA0KICAgICAgICAgICAgICAgICAgIERlY2Vzb3M9c3VtKERlY2Vzb3MpLA0KICAgICAgICAgICAgICAgICAgIFJlY3VwZXJhZG9zPXN1bShSZWN1cGVyYWRvcyksDQogICAgICAgICAgICAgICAgICAgQWN0aXZvcz1zdW0oQWN0aXZvcykpDQp0YWJsYV9zYW50YWNydXo9bGlzdCh0YWJsYV9zYW50YWNydXopDQoNCnRhYmxhX3NhbnRhY3J1ej1saXN0KFRpcG89YygiQ29uZmlybWFkb3MiLCJEZWNlc29zIiwiUmVjdXBlcmFkb3MiLCJBY3Rpdm9zIiksDQogICAgICAgICAgICAgICAgICAgTnJvX2Nhc29zPWModGFibGFfc2FudGFjcnV6W1sxXV0kQ29uZmlybWFkb3MsdGFibGFfc2FudGFjcnV6W1sxXV0kRGVjZXNvcyx0YWJsYV9zYW50YWNydXpbWzFdXSRSZWN1cGVyYWRvcyx0YWJsYV9zYW50YWNydXpbWzFdXSRBY3Rpdm9zKSwNCiAgICAgICAgICAgICAgICAgICBQb3JjZW50YWplPWMoMTAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZCh0YWJsYV9zYW50YWNydXpbWzFdXSREZWNlc29zL3RhYmxhX3NhbnRhY3J1eltbMV1dJENvbmZpcm1hZG9zKjEwMCwxKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmQodGFibGFfc2FudGFjcnV6W1sxXV0kUmVjdXBlcmFkb3MvdGFibGFfc2FudGFjcnV6W1sxXV0kQ29uZmlybWFkb3MqMTAwLDEpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZCh0YWJsYV9zYW50YWNydXpbWzFdXSRBY3Rpdm9zL3RhYmxhX3NhbnRhY3J1eltbMV1dJENvbmZpcm1hZG9zKjEwMCwxKSkpDQpkYXRhLmZyYW1lKHRhYmxhX3NhbnRhY3J1eikNCg0KYGBgDQoNCiMjIyBUYXJpamEgey19DQoNCmBgYHtyIHRhYmxhX3RhcmlqYSxlY2hvPUZBTFNFfQ0KdGFibGFfdGFyaWphPWJkX2RlcFtbOV1dICU+JSANCiAgZHBseXI6OnN1bW1hcmlzZShDb25maXJtYWRvcz1zdW0oQ29uZmlybWFkb3MpLA0KICAgICAgICAgICAgICAgICAgIERlY2Vzb3M9c3VtKERlY2Vzb3MpLA0KICAgICAgICAgICAgICAgICAgIFJlY3VwZXJhZG9zPXN1bShSZWN1cGVyYWRvcyksDQogICAgICAgICAgICAgICAgICAgQWN0aXZvcz1zdW0oQWN0aXZvcykpDQp0YWJsYV90YXJpamE9bGlzdCh0YWJsYV90YXJpamEpDQoNCnRhYmxhX3RhcmlqYT1saXN0KFRpcG89YygiQ29uZmlybWFkb3MiLCJEZWNlc29zIiwiUmVjdXBlcmFkb3MiLCJBY3Rpdm9zIiksDQogICAgICAgICAgICAgICAgICAgTnJvX2Nhc29zPWModGFibGFfdGFyaWphW1sxXV0kQ29uZmlybWFkb3MsdGFibGFfdGFyaWphW1sxXV0kRGVjZXNvcyx0YWJsYV90YXJpamFbWzFdXSRSZWN1cGVyYWRvcyx0YWJsYV90YXJpamFbWzFdXSRBY3Rpdm9zKSwNCiAgICAgICAgICAgICAgICAgICBQb3JjZW50YWplPWMoMTAwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZCh0YWJsYV90YXJpamFbWzFdXSREZWNlc29zL3RhYmxhX3RhcmlqYVtbMV1dJENvbmZpcm1hZG9zKjEwMCwxKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmQodGFibGFfdGFyaWphW1sxXV0kUmVjdXBlcmFkb3MvdGFibGFfdGFyaWphW1sxXV0kQ29uZmlybWFkb3MqMTAwLDEpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZCh0YWJsYV90YXJpamFbWzFdXSRBY3Rpdm9zL3RhYmxhX3RhcmlqYVtbMV1dJENvbmZpcm1hZG9zKjEwMCwxKSkpDQpkYXRhLmZyYW1lKHRhYmxhX3RhcmlqYSkNCg0KYGBgDQoNCkxvcyBkYXRvcyB1dGlsaXphZG9zIHNvbiBkZSAqKjxib2xpdmlhc2VndXJhLmdvYi5ibz4qKi4NCg==